🚀 Construction d'un Cluster de Calcul avec Raspberry Pi đŸ–„ïž

Ce tutoriel vous guide à travers les étapes nécessaires pour construire un cluster de calcul à l'aide de plusieurs Raspberry Pi, créant ainsi un puissant systÚme de calcul distribué à faible coût.

🔧 PrĂ©requis

đŸ› ïž Étape 1 : PrĂ©paration des Raspberry Pi

Commencez par mettre Ă  jour chaque Raspberry Pi :

sudo apt-get update
sudo apt-get upgrade

Ensuite, vous pouvez configurer chaque Raspberry Pi avec un script pour automatiser certaines tĂąches :

# Script de configuration initiale pour Raspberry Pi
#!/bin/bash
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y vim htop git
sudo raspi-config nonint do_hostname $1
sudo systemctl enable ssh

Utilisez ce script pour configurer le nom d'hÎte et activer SSH sur chaque Raspberry Pi. Remplacez $1 par le nom d'hÎte souhaité.

🌐 Étape 2 : Configuration du RĂ©seau

Connectez tous les Raspberry Pi au switch réseau en utilisant des cùbles Ethernet. Assurez-vous que chaque Pi a une adresse IP unique.

Vous pouvez utiliser un autre script pour fixer les adresses IP :

# Script pour configurer une adresse IP statique
#!/bin/bash
sudo cp /etc/dhcpcd.conf /etc/dhcpcd.conf.backup
echo "interface eth0" | sudo tee -a /etc/dhcpcd.conf
echo "static ip_address=$1/24" | sudo tee -a /etc/dhcpcd.conf
echo "static routers=$2" | sudo tee -a /etc/dhcpcd.conf
echo "static domain_name_servers=$3" | sudo tee -a /etc/dhcpcd.conf
sudo systemctl restart dhcpcd

Exécutez ce script sur chaque Pi en fournissant l'adresse IP, la passerelle (généralement l'adresse du routeur), et le serveur DNS.

📩 Étape 3 : Installation de MPI (Message Passing Interface)

Installez OpenMPI sur chaque Raspberry Pi :

sudo apt-get install -y mpich

🔐 Étape 4 : Configuration SSH

Configurez les clés SSH pour permettre une connexion sans mot de passe entre les Pi :

ssh-keygen
ssh-copy-id pi@<adresse_ip_du_pi>

Pour automatiser cela, vous pouvez crĂ©er un script qui gĂ©nĂšre les clĂ©s et les distribue Ă  chaque nƓud :

# Script pour configurer SSH sans mot de passe
#!/bin/bash
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
for ip in "$@"
do
    ssh-copy-id pi@$ip
done

Utilisez ce script en passant les adresses IP de chaque Raspberry Pi comme paramĂštres.

⚙ Étape 5 : Test du Cluster MPI

Créez un fichier "hostfile" listant les adresses IP de tous les Pi :

nano hostfile

Ajoutez les adresses IP de tous les Pi dans ce fichier. Ensuite, testez le cluster :

mpirun -np 4 --hostfile hostfile hostname

Cette commande devrait afficher le nom d'hĂŽte de chaque Pi dans le cluster.

đŸ–„ïž Étape 6 : ExĂ©cution d'un Programme MPI

Créez un programme simple en C utilisant MPI :

#include <mpi.h>
#include <stdio.h>

int main(int argc, char** argv) {
    MPI_Init(NULL, NULL);
    int world_size;
    MPI_Comm_size(MPI_COMM_WORLD, &world_size);
    int world_rank;
    MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
    printf("Hello world from processor %d of %d\n", world_rank, world_size);
    MPI_Finalize();
}

Compilez et exécutez ce programme sur le cluster :

mpicc -o hello_mpi hello_mpi.c
mpirun -np 4 --hostfile hostfile ./hello_mpi

Vous devriez voir un message de chaque Pi indiquant son rang et la taille totale du monde.

🔧 DĂ©pannage et Optimisation

Si vous rencontrez des problĂšmes lors de la configuration du cluster, voici quelques conseils :

🎉 Conclusion

Félicitations ! Vous avez maintenant un cluster de calcul fonctionnel utilisant plusieurs Raspberry Pi. Utilisez ce cluster pour des tùches de calcul intensif, des simulations ou pour apprendre les principes de base du calcul distribué.